/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.seguridad.controlador;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.abstracts.ControladorAbstract;
import sv.com.intesal.seguridad.bean.TipoParametro;
import sv.com.intesal.seguridad.sql.SQLTipoParametro;

/**
 *
 * @author ejerez
 */
public class TipoParametroControlador extends ControladorAbstract {

    public void insert(TipoParametro tp) throws Exception {
        try {
            super.setPreparedStatement(SQLTipoParametro.insert);
            super.ps.setString(1, tp.getNombre_tp());
            super.ps.setString(2, tp.getDescripcion_tp());
            super.ps.setString(3, tp.getTipo_tp());
            super.ps.setString(4, super.v.getEstado(tp.getEstado_filtro_tp()));
            super.ps.executeUpdate();

        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public void update(TipoParametro tp) throws Exception {
        try {
            super.setPreparedStatement(SQLTipoParametro.update);
            super.ps.setString(1, tp.getNombre_tp());
            super.ps.setString(2, tp.getDescripcion_tp());
            super.ps.setString(3, tp.getTipo_tp());
            super.ps.setString(4, super.v.getEstado(tp.getEstado_filtro_tp()));
            super.ps.setInt(5, tp.getCodigo_tp());
            super.ps.executeUpdate();
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public List<TipoParametro> getTipoParametros() throws Exception {
        List<TipoParametro> lista = new ArrayList<TipoParametro>();
        try {
            this.getExecuteQuery(SQLTipoParametro.getTipoParametros);
            while (super.rs.next()) {
                lista.add(this.getTipoParametro(super.rs));
            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public List<TipoParametro> getTipoParametrosActivos_x_Tipo(String tipo) throws Exception {
        List<TipoParametro> lista = new ArrayList<TipoParametro>();
        try {
            this.setPreparedStatement(SQLTipoParametro.getTipoParametrosActivos_x_Tipo);
            ps.setString(1, tipo);
            super.rs = ps.executeQuery();
            while (super.rs.next()) {
                lista.add(this.getTipoParametro(super.rs));
            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    private TipoParametro getTipoParametro(ResultSet rs) throws Exception {
        try {
            TipoParametro tp = new TipoParametro();
            tp.setCodigo_tp(rs.getInt("codigo_tp"));
            tp.setNombre_tp(rs.getString("nombre_tp"));
            tp.setDescripcion_tp(rs.getString("descripcion_tp"));
            tp.setTipo_tp(rs.getString("tipo_tp"));
            tp.setEstado_tp(rs.getString("estado_tp"));
            tp.setEstado_filtro_tp(v.getEstado(rs.getString("estado_tp")));
            return tp;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}
